﻿ #define  _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//
//int main()
//{
//	//输入一个整数，判断是否为奇数
//	int a = 0;
//	scanf("%d", &a);// scanf 是参数是地址 ，所以要加&
//	//判断并输出
//	if (a % 2 == 1) // =是赋值 ==是判断
//	{
//		printf("%d 是奇数",a);
//	}
//	else {
//		printf("%d 不是奇数",a);
//	}
//
//	return 0;
//}

//输⼊⼀个年龄，>= 18岁就输出：成年，否则就输出：未成年

//int main()
//{
//	int age = 0;
//	scanf("%d", &age);
//
//	if (age >= 18)
//	{
//		printf("成年");
//	}
//	else
//	{
//		printf("未成年");
//	}
//	return 0;
//}

//exp1 ? exp2 : exp3
//条件操作符：如果 exp1 为真， exp2 计算，计算的结果是整个表达式的结果；如果
//exp1 为假， exp3 计算，计算的结果是整个表达式的结果。
// 
//int main()
//{
//	//找出两个数中的较大值
//	int a = 1;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	
//	int m = a > b ? a : b;
//	printf("较大的数是%d", m);
//	return 0;
//}


/*输⼊⼀个年份year，判断year是否是闰年
闰年判断的规则：
1. 能被4整除并且不能被100整除是闰年
2. 能被400整除是闰*/

//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//
//	if (year % 400 == 0 || (year % 4 == 0 && year % 100!=0))
//	{
//		printf("%d 是闰年", year);
//	}
//	else
//	{
//		printf("%d 不是闰年", year);
//	}
//	return 0;
//}

//逻辑运算符的短路：如果左边的表达式满⾜逻辑运算符的条件，就不再对右边的表达式求值。

//if (month >= 3 && month <= 5)
//if(month == 12 ||month <= 12 ||month >= 12)

//int main()
//{
//	int i = 0, a = 0, b = 2, c = 3, d = 4;
//	i = a++ && ++b && d++;
//	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
//	return 0;
//}
// a++s是a操作完再+1，所以是0，即假后面不执行了，a++还是执行的

//int main()
//{
//	int i = 0, a = 0, b = 2, c = 3, d = 4;
//	i = a++||++b||d++;
//	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
//	return 0;
//}

//swich 语句      ：用于判断有多个结果的情况

//switch (expression) {
//case value1: statement
//case value2: statement
//default: statement
//}

//switch 后的 expression 必须是整型表达式
//case 后的值，必须是整形常量表达式

//注意
//1. case 和后边的数字(表达式的值)之间必须有空格
//2. 每⼀个 case 语句中的代码执⾏完成后，需要加上 break ，才能跳出这个switch语句。

//输⼊任意⼀个整数值，计算除3之后的余数
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//
//	switch(a%3)
//	{
//	case 0:
//		printf("余数是0");
//		break;
//	case 1:
//		printf("余数是1");
//		break;
//	case 3:
//		printf("余数是3");
//		break;
//	case 2:
//		printf("余数是2");
//		break;
//	}
//	return 0;
//}

//break并不是必须加
//输⼊⼀个1~7的数字，打印对应的星期⼏
//例如：
//输⼊：1 输出：星期⼀
//输⼊：2 输出：星期⼆
//输⼊：3 输出：星期三
//输⼊：4 输出：星期四
//输⼊：5 输出：星期五
//输⼊：6 输出：星期六
//输⼊：7 输出：星期天

//输⼊1 - 5，输出的是“⼯作⽇”;
//输⼊6 - 7，输出“休息⽇”

//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//
//	switch (a)
//	{
//	case 1:
//		printf("星期一");
//		break;
//	case 2:
//		printf("星期二");
//		break;
//	case 3:
//		printf("星期三");
//		break;
//	case 4:
//		printf("星期四");
//		break;
//	case 5:
//		printf("星期五");
//		break;
//	case 6:
//		printf("星期六");
//		break;
//	case 7:
//		printf("星期七");
//		break;
//	}
//
//	switch (a)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日");
//		break;
//	case 6:
//	case 7:
//		printf("休息日");
//		break;
//	}
//
//
//	return 0;
//}


//switch语句中的default
// switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,运行default语句

//int main()
//{
//
//	int a = 0;
//	scanf("%d", &a);
//
//	switch (a)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日");
//		break;
//	case 6:
//	case 7:
//		printf("休息日");
//		break;
//	default:
//		printf("输入错误");
//	}
//	return 0;
//}

//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
//例如：
//输⼊：1234，输出：4 3 2 1
//输⼊：521，输出：1 2 5

//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//
//	while (num)
//	{
//		printf("%d", num % 10);
//		num /= 10;
//	}
//	return 0;
//}

//计算1~100之间3的倍数的数字之和

//int main()
//{
//	int i = 0;
//	int num = 0;
//	for (i = 1; i <= 100; i++)//for循环三个表达式间用;间隔
//	{
//		if (i % 3 == 0)
//		{
//			num += i;
//		}
//	}
//	printf("%d\n", num);
//	return 0;
//
//	for (i = 3; i <= 100; i += 3)
//	{
//		num += i;
//	}
//	printf("%d\n", num);
//}

//do while 循环则是先直接进⼊循环体，执⾏循环语句，然后再执⾏ while 后的判断表达式，表
//达式为真，就会进⾏下⼀次，表达式为假，则不再继续循环。


//输⼊⼀个正整数，计算这个整数是⼏位数？
//例如：
//输⼊：1234 输出：4
//输⼊：12 输出：2

//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//
//	while (a)
//	{
//		a /= 10;
//		b++;
//	}
//	printf("a有%d位数", b);
//
//	return 0;
//}

//使用dowhile语句实现
//这⾥并⾮必须使⽤ do while 语句，但是这个代码就⽐较适合使⽤ do while 循环，因为n即使是0，也是1位数，要统计位数的

//do
//语句；
//while (表达式)；

//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//
//	do
//	{
//		a /= 10;
//		b++;
//	} while (a);
//	printf("%d位数", b);
//
//	return 0;
//}

//break 语句的作⽤是永久的终⽌循环，未来我们在某个条件发⽣的时候，不想再继续循环的时候，就可以使⽤ break 来完成

//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);
//	}
//	return 0;
//}


//在 for 循环中 continue 的作⽤是跳过本次循环中 continue 后的代码，直接去到循环的调整部分
//未来当某个条件发⽣的时候，本次循环⽆需再执⾏后续某些操作的时候，就可以使⽤ continue 来实现
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;//这⾥continue跳过了后边的打印，来到了i++的调整部分
//		printf("%d ", i);
//	}
//	return 0;
//}


//找出100~200之间的素数，并打印在屏幕上。

//int main()
//{
//	int i = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		int j = 0;
//		int k = 0;
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				k = 1;
//				break;
//			}
//		}
//		if (k == 0)
//		{
//			printf("%d  ", i);
//		}
//	}
//	return 0;
//}

//3讲完结